package com.kurtphpr.sistema.pagamento;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

import com.kurtphpr.sistema.cliente.Cliente;
import com.kurtphpr.sistema.cliente.ClienteRN;
import com.kurtphpr.sistema.venda.VendaRN;

@ViewScoped
@ManagedBean(name = "registroPagamento")
public class RegistroPagamentoBean {

	private Pagamento pagamento = new Pagamento();
	private List<SelectItem> clientesSelect;
	private Cliente clienteSelecionado = new Cliente();
	
	
	public List<SelectItem> getClientesSelect() {
		if (this.clientesSelect == null) {
			clientesSelect = new ArrayList<SelectItem>();

			ClienteRN clienteRN = new ClienteRN();

			List<Cliente> listaClientes = clienteRN.listar();

			if (listaClientes != null && !listaClientes.isEmpty()) {
				SelectItem item;
				for (Cliente clienteLista : listaClientes) {

					item = new SelectItem(clienteLista, clienteLista.getNome());
					clientesSelect.add(item);
				}
			}

		}

		return clientesSelect;
	}
	
	public String finalizarPagamento(){
		if(this.pagamento.getValor() != 0 && this.clienteSelecionado != null){
			VendaRN vendaRN = new VendaRN();
			
			float saldoAnteriorDoCliente = clienteSelecionado.getSaldo();
			
			this.clienteSelecionado.setSaldo(saldoAnteriorDoCliente + pagamento.getValor());
			vendaRN.debitaSaldoCliente(clienteSelecionado);
			
			pagamento.setDataCadastro(new Date());
			pagamento.setCliente(clienteSelecionado);
			
			
			PagamentoRN pagamentoRN = new PagamentoRN();
			pagamentoRN.salvar(pagamento);
			
		}
		
		
		return null;
	}

	public Cliente getClienteSelecionado() {
		return clienteSelecionado;
	}
	
	public void setClienteSelecionado(Cliente clienteSelecionado) {
		this.clienteSelecionado = clienteSelecionado;
	}

	public Pagamento getPagamento() {
		return pagamento;
	}

	public void setPagamento(Pagamento pagamento) {
		this.pagamento = pagamento;
	}

}
